/************************************************************************

								Heroes IV
					  Copyright 2000, The 3DO Company

	------------------------------------------------------------------
  						       report_combat_results.h

	$Header: /game/report_combat_results.h $

	$NoKeywords: $

 ************************************************************************/

#if !defined( REPORT_COMBAT_RESULTS_H_INCLUDED )
#define REPORT_COMBAT_RESULTS_H_INCLUDED

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "adv_map_point.h"
#include "army_ptr.h"
#include "creature_stack_ptr.h"

enum  t_combat_result;
class t_creature_array;
struct t_level_map_point_2d;
class t_player;
class t_town;
class t_window;
class t_army;
class t_artifact_list;
class t_creature_stack;
class t_hero;

void post_process_combat_results( t_creature_array**	 armies,
								  t_player**			 players,
								  t_creature_array*	     losses,
								  t_combat_result		 result,
								  t_adv_map_point const& location,
								  t_window*			     window,
								  t_town const*		     town );

void report_combat_results( t_creature_array**		armies,
						    t_player**				players,
							t_creature_array*		losses,
							t_combat_result			result,
							t_window*				window,
							t_town const*			town,
							t_adv_map_point const&	location,
							t_creature_stack_ptr ( & leaders )[ 2 ] );

void post_process_apply_combat_results( t_creature_array**		armies,
										t_player**				players,
										t_creature_array const*	losses,
										t_combat_result			result,
										t_adv_map_point const&	location,
										t_window*				window,
										t_town*					town );

void post_process_apply_combat_surrender(	t_creature_array**		armies,
											t_player**				players,
											t_creature_array*	    losses,
											t_combat_result			result,
											t_adv_map_point const&	location,
											t_window*			    window,
											t_town*				    town,
											t_artifact_list			booty,
											bool const *			are_real_armies,
											t_army_ptr &			new_army );

void do_necromancy( t_creature_array&				victor,
						   t_player*				victorious_player,
						   t_creature_array const&	vanquished_losses,
						   t_hero**					necromancer,
						   t_creature_array&		new_necro_creatures );

t_hero* do_resurrection( t_creature_array&				victor,
							    t_creature_array const& victor_losses,
							    t_creature_array&		resurrected_creatures,
								bool					apply_results = true );

void auto_distribute_booty( t_creature_array & winners, t_artifact_list & booty );

void strip_artifacts( t_creature_array& army, t_artifact_list& booty );


#endif

